﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AccesoDatos.Manejador;
using AccesoDatos.Objetos;

namespace Autorizacion_facturas_caja.Vacaciones
{
    public partial class frmVacaciones_Busqueda_Sucursales : Form
    {
        Manejador_Empleado_Captura Mane = new Manejador_Empleado_Captura();
        objRH obj = new objRH();
        objVacaciones obj1 = new objVacaciones();
        Manejador_Vacaciones MV = new Manejador_Vacaciones();

        #region FUNCIONES

        //coloca la fecha inicio 15 dias antes
        private void fecha()
        {
            DateTime Fecha_Hoy = DateTime.Today;
            Fecha_Hoy = Fecha_Hoy.AddDays(-15);
            dTPInicio.Text = Fecha_Hoy.ToShortDateString();
        }

        //Obtiene los datos de la tabla cat_sucursales al combo de sucursales
        private void ObtieneDatosCombo()
        {
            cmbSucursal.DataSource = Mane.ObtieneSucursales();
            cmbSucursal.ValueMember = "SucId";
            cmbSucursal.DisplayMember = "Nombre";
        }

        //realiza la busqueda
        private void buscar()
        {
            if (cmbVacaciones.Text.Trim() != "")
            {
                obj.SucId = cmbSucursal.SelectedValue.ToString();
                if (cBTodas.Checked == true) { obj.SucId = "0"; }
                obj1.Completado = cmbVacaciones.Text.Trim();
                obj1.Fecha_Inicio_Vacaciones = dTPInicio.Value;
                obj1.Fecha_fin_vacaciones = dTPFin.Value;
                dataGridView1.DataSource = MV.ReportVacacionesSucursal(obj.SucId, obj1.Completado, obj1.Fecha_Inicio_Vacaciones, obj1.Fecha_fin_vacaciones);
                btnReporte.Visible = true;
                propiedadesColumnas();
            }
            else { MessageBox.Show("SELECCIONE ATRIBUTOS PARA LA BUSQUEDA", "ALERTA"); }
        }

        //pripiedades de las columnas del datagrid
        private void propiedadesColumnas()
        {
            this.dataGridView1.RowHeadersVisible = false;

            /*Esconde las columnas*/
            this.dataGridView1.Columns["id_empleado"].Visible = false;
            this.dataGridView1.Columns["id_sucursal"].Visible = false;
            this.dataGridView1.Columns["fecha_ingreso"].Visible = false;
            this.dataGridView1.Columns["id_jefe"].Visible = false;
            this.dataGridView1.Columns["cuenta_banco"].Visible = false;
            this.dataGridView1.Columns["estatus"].Visible = false;
            this.dataGridView1.Columns["nombre"].Visible = false;
            this.dataGridView1.Columns["apellidos"].Visible = false;
            this.dataGridView1.Columns["id_Relacion_Vacaciones"].Visible = false;
            this.dataGridView1.Columns["id_Vacaciones"].Visible = false;
            this.dataGridView1.Columns["id_vacacion_padre"].Visible = false;
            this.dataGridView1.Columns["fecha_solicitud"].Visible = false;
            this.dataGridView1.Columns["id_aprobador"].Visible = false;
            this.dataGridView1.Columns["id_suplente"].Visible = false;
            this.dataGridView1.Columns["autorizacion"].Visible = false;
            obj1.Tipo = cmbVacaciones.Text;
            if (obj1.Tipo == "TODAS")
            {
                this.dataGridView1.Columns["completado"].Visible = true;
                this.dataGridView1.Columns["completado"].HeaderText = "ESTATUS";
            }
            else
            {
                this.dataGridView1.Columns["completado"].Visible = false;
            }

            this.dataGridView1.Columns["comentario"].Visible = false;
            this.dataGridView1.Columns["estatus1"].Visible = false;
            this.dataGridView1.Columns["id_empleado1"].Visible = false;
            this.dataGridView1.Columns["Dias_Correspondientes"].Visible = false;
            this.dataGridView1.Columns["Dias_Disfrutados"].Visible = false;
            this.dataGridView1.Columns["Estatus2"].Visible = false;
            this.dataGridView1.Columns["Dias_Restantes"].Visible = false;
            this.dataGridView1.Columns["Dias_Programados"].Visible = false;
            this.dataGridView1.Columns["Dias_Acomulados"].Visible = false;
            this.dataGridView1.Columns["Referencia"].Visible = false;
            this.dataGridView1.Columns["Ciclo"].Visible = false;
            this.dataGridView1.Columns["Monto_Dias_Acomulados"].Visible = false;
            this.dataGridView1.Columns["Fecha_Alta"].Visible = false;
            this.dataGridView1.Columns["Id_Relacion_Vacaciones"].Visible = false;
            this.dataGridView1.Columns["Id_vacaciones1"].Visible = false;
            this.dataGridView1.Columns["Id_vacacion_padre"].Visible = false;
            this.dataGridView1.Columns["fecha_solicitud"].Visible = false;
            this.dataGridView1.Columns["id_aprobador"].Visible = false;
            this.dataGridView1.Columns["id_suplente"].Visible = false;
            this.dataGridView1.Columns["autorizacion"].Visible = false;
            this.dataGridView1.Columns["dias_solicitados"].Visible = false;
            this.dataGridView1.Columns["comentario"].Visible = false;
            this.dataGridView1.Columns["Estatus2"].Visible = false;
            this.dataGridView1.Columns["Periodo"].Visible = false;
            this.dataGridView1.Columns["Monto_Dias_Pagados"].Visible = false;
            this.dataGridView1.Columns["Dias_Pagados"].Visible = false;
            this.dataGridView1.Columns["id_empresa"].Visible = false;
            this.dataGridView1.Columns["id_empleado2"].Visible = false;
            this.dataGridView1.Columns["id_sucursal1"].Visible = false;
            this.dataGridView1.Columns["fecha_ingreso1"].Visible = false;
            this.dataGridView1.Columns["id_jefe1"].Visible = false;
            this.dataGridView1.Columns["cuenta_banco1"].Visible = false;
            this.dataGridView1.Columns["estatus2"].Visible = false;
            this.dataGridView1.Columns["nombre1"].Visible = false;
            this.dataGridView1.Columns["apellidos1"].Visible = false;
            this.dataGridView1.Columns["id_empleado3"].Visible = false;
            this.dataGridView1.Columns["id_sucursal2"].Visible = false;
            this.dataGridView1.Columns["fecha_ingreso2"].Visible = false;
            this.dataGridView1.Columns["id_jefe2"].Visible = false;
            this.dataGridView1.Columns["cuenta_banco2"].Visible = false;
            this.dataGridView1.Columns["estatus3"].Visible = false;
            this.dataGridView1.Columns["nombre2"].Visible = false;
            this.dataGridView1.Columns["apellidos2"].Visible = false;
            this.dataGridView1.Columns["estatus4"].Visible = false;
            this.dataGridView1.Columns["id_empresa1"].Visible = false;
            this.dataGridView1.Columns["puesto1"].Visible = false;
            this.dataGridView1.Columns["id_departamento1"].Visible = false;
            this.dataGridView1.Columns["puesto2"].Visible = false;
            this.dataGridView1.Columns["id_departamento2"].Visible = false;
            this.dataGridView1.Columns["id_empresa2"].Visible = false;
            this.dataGridView1.Columns["id_departamento"].Visible = false;
            this.dataGridView1.Columns["id_departamento1"].Visible = false;
            this.dataGridView1.Columns["id_jefe3"].Visible = false;
            this.dataGridView1.Columns["idsucursal"].Visible = false;
            if (cBTodas.Checked == true)
            {
                this.dataGridView1.Columns["NEMONICO"].HeaderText = "SUCURSAL";
                this.dataGridView1.Columns["NEMONICO"].DisplayIndex = 0;
                this.dataGridView1.Columns["NEMONICO"].Width = 70;
                this.dataGridView1.Columns["NEMONICO"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                this.dataGridView1.Columns["Nombre_apellidos"].DisplayIndex = 1;
            }
            else
            {
                this.dataGridView1.Columns["Nombre_apellidos"].DisplayIndex = 0;
            }

            //Renombra columnas
            this.dataGridView1.Columns["departamento1"].Visible = false;
            this.dataGridView1.Columns["departamento"].HeaderText = "DEPARTAMENTO";
            this.dataGridView1.Columns["puesto"].HeaderText = "PUESTO";
            this.dataGridView1.Columns["fecha_inicio"].HeaderText = "FECHA INICIO";
            this.dataGridView1.Columns["Nombre_apellidos"].HeaderText = "EMPLEADO";
            this.dataGridView1.Columns["fecha_fin"].HeaderText = "FECHA FIN";
            this.dataGridView1.Columns["dias_solicitados"].HeaderText = "DÍAS SOLICITADOS";
            this.dataGridView1.Columns["dias_programados"].HeaderText = "DÍAS PROGRAMADOS";
            this.dataGridView1.Columns["Nombre_apellidos"].DisplayIndex = 1;
            this.dataGridView1.Columns["departamento"].DisplayIndex = 2;
            this.dataGridView1.Columns["puesto"].DisplayIndex = 3;
            this.dataGridView1.Columns["Antiguedad"].HeaderText = "ANTIGUEDAD";
            this.dataGridView1.Columns["dias_solicitados"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["Dias_Programados"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["fecha_fin"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["fecha_inicio"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["Antiguedad"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["Antiguedad"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["departamento"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["puesto"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["fecha_inicio"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["Nombre_apellidos"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["fecha_fin"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["dias_solicitados"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["dias_programados"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
        }
        #endregion

        #region BOTONES
        //llama al metodo buscar
        private void btnBuscar_Click(object sender, EventArgs e)
        {
            buscar();
        }

        //cierra la forma
        private void btnRegresar_Click(object sender, EventArgs e)
        {
            Close();
        }

        //despliega reporte
        private void btnReporte_Click(object sender, EventArgs e)
        {
            frmVacaciones_Reporte_Sucursales fvrs = new frmVacaciones_Reporte_Sucursales(obj, obj1, cmbSucursal.Text.Trim());
            fvrs.ShowDialog();
        }


        #endregion

        #region  EVENTOS
        public frmVacaciones_Busqueda_Sucursales()
        {
            InitializeComponent();
            ObtieneDatosCombo();
            btnReporte.Visible = false;
            fecha();
        }

        //asigna tips a botones
        private void frmVacaciones_Busqueda_Sucursales_Load(object sender, EventArgs e)
        {
            toolTip1.SetToolTip(btnBuscar, "BUSCAR");
            toolTip1.SetToolTip(btnRegresar, "REGRESAR");
            toolTip1.SetToolTip(btnReporte, "REPORTE");
            toolTip1.SetToolTip(dTPInicio, "FECHA DE INICIO DE VACACIONES");
            toolTip1.SetToolTip(dTPFin, "FECHA DE INICIO DE VACACIONES");
        }

        //valida fechas
        private void dTPInicio_ValueChanged(object sender, EventArgs e)
        {
            if (dTPInicio.Value > dTPFin.Value)
            {
                dTPInicio.Value = DateTime.Today;
                MessageBox.Show("FECHA INCORRECTA", "ALERTA");
            }
        }

        //valida fechas
        private void dTPFin_ValueChanged(object sender, EventArgs e)
        {
            if (dTPInicio.Value > dTPFin.Value)
            {
                dTPFin.Value = DateTime.Today;
                MessageBox.Show("FECHA INCORRECTA", "ALERTA");
            }
        }

        //abilita o desabilita combo box de sucursales
        private void cBTodas_CheckedChanged(object sender, EventArgs e)
        {
            if (cBTodas.Checked == true)
            {
                cmbSucursal.Enabled = false;
            }
            else if (cBTodas.Checked == false)
            {
                cmbSucursal.Enabled = true;
            }
        }
        #endregion  
    }
}
